#include <stdio.h>
#include <stdlib.h>
#include "judge.h"

int judge(int num,int n,int p,int q,char a[100][100])
{
		int i,j;
		//判定胜负
		int b=0,c=0,d=0,e=0,r=0;
		//横排成五子
		for(i=0;i<5;i++)
		{
			if(p+i<num&&a[p+i][q]==a[p][q])
				b++;
			else break;
		}
		for(i=1;i<5;i++)
		{		
			if(p-i>=0&&a[p-i][q]==a[p][q])
				b++;
			else break;
		}
		if(b>=5) r=1;
		
		//竖排成五子
		for(i=0;i<5;i++)
		{
			if(q+i<num&&a[p][q+i]==a[p][q])
				c++;
			else break;
		}
		for(i=1;i<5;i++)
		{
			if(q-i>0&&a[p][q-i]==a[p][q])
				c++;
			else break;
		}
		if(c>=5) r=1;
		
		//撇方向成五子
		for(i=0;i<5;i++)
		{
			if(p+i<num&&q+i<num&&a[p+i][q+i]==a[p][q])
				d++;
			else break;
		}
		for(i=1;i<5;i++)
		{
			if(p-i>0&&q-i>0&&a[p-i][q-i]==a[p][q])
				d++;
			else break;
		}
		if(d>=5) r=1;
		
		//捺方向成五子
		for(i=0;i<5;i++)
		{
			if(p+i<num&&q-i>0&&a[p+i][q-i]==a[p][q])
				e++;
			else break;
		}
		for(i=1;i<5;i++)
		{
			if(p-i>0&&q+i<num&&a[p-i][q+i]==a[p][q])
				e++;
			else break;
		}
		if(e>=5) r=1;
		
		//和局判定	
		if(r==0&&n==num*num)
		{
			printf("此为和局\n");
			r=1;
		}	
		
		return r;
}

